package com.hr.reactive.operators;

import com.hr.reactive.common.Utils;
import reactor.core.publisher.Flux;

import java.time.Duration;

/**
 * @author Administrator
 */
public class Lec04Delay {
    public static void main(String[] args) {
//        Flux.range(1,10).log()
//                //生产者不会提前完成所有工作
//                .delayElements(Duration.ofSeconds(1))
//                .subscribe(Utils.subscriber());
//        Utils.sleepSeconds(10);


        //另一种写法
        Flux.range(1,10).log()
                //生产者不会提前完成所有工作
                .delayElements(Duration.ofSeconds(1))
                .doOnComplete(()-> System.out.println("doOnComplete"))
                .doOnError(err-> System.out.println(err))
                .doOnNext(i-> System.out.println(i))
                .subscribe();
        Utils.sleepSeconds(10000);
    }
}
